In [1]:
executed in 2.16s, finished 14:13:56 2021-10-04

parametersΒΆ

caption of FIG. S9ΒΆ

Οƒ=0.2Ο‰10(unstrained)Ξ³10=0.05σ¢

(s7)Ξ³10=12(Ξ“10+Ξ“12)+Ξ³cwithΞ³c≫12(Ξ“10+Ξ“12)ΒΆ

In [2]:
executed in 3ms, finished 14:13:56 2021-10-04

colorbar functionΒΆ

In [3]:
executed in 4ms, finished 14:13:56 2021-10-04

complex square functionΒΆ

In [4]:
executed in 363ms, finished 14:13:56 2021-10-04

complex phaseΒΆ

In [5]:
executed in 95ms, finished 14:13:57 2021-10-04

creating meshΒΆ

In [6]:
executed in 559ms, finished 14:13:57 2021-10-04

multiple plot functionΒΆ

In [7]:
executed in 9ms, finished 14:13:57 2021-10-04
In [8]:
executed in 2.83s, finished 14:14:00 2021-10-04

density matrix elementΒΆ

index 10, 3rd order correctionΒΆ

(s11)ρ10,sig(3)(Ο‰t,ωτ)=βˆ’i|ΞΌ|2ΞΌ8ℏ3(iΟ‰tβˆ’[Ο‰10βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’Ο‰10βˆ’iΞ³10])ΒΆ

Modified density matrix elementΒΆ

ρ10,sig(3)(Ο‰t,ωτ)=βˆ’i|ΞΌ|2ΞΌ8ℏ3[+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ•(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ•Ξ”es)}βˆ’iΞ³10])+(iΟ‰tβˆ’[Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’{Ο‰10βŠ–(Ξ”gsβŠ–Ξ”es)}βˆ’iΞ³10])] (Mod.s11)ΒΆ

In [9]:
executed in 11ms, finished 14:14:00 2021-10-04
In [10]:
executed in 6.38s, finished 14:14:06 2021-10-04
/var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py:1: NumbaWarning: 
Compilation is falling back to object mode WITH looplifting enabled because Function "rho_10_sig_3" failed type inference due to: No implementation of function Function(<function sum at 0x7fe3d6422af0>) found for signature:
 
 >>> sum(list(array(complex128, 3d, C))<iv=None>, Literal[int](0))
 
There are 2 candidate implementations:
  - Of which 2 did not match due to:
  Overload of function 'sum': File: numba/core/typing/npydecl.py: Line 348.
    With argument(s): '(list(array(complex128, 3d, C))<iv=None>, Literal[int](0))':
   No match.

During: resolving callee type: Function(<function sum at 0x7fe3d6422af0>)
During: typing of call at /var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py (4)


File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py", line 4:
<source missing, REPL/exec in use?>

  @numba.jit
/Users/tommychin/opt/anaconda3/lib/python3.8/site-packages/numba/core/object_mode_passes.py:151: NumbaWarning: Function "rho_10_sig_3" was compiled in object mode without forceobj=True.

File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py", line 1:
<source missing, REPL/exec in use?>

  warnings.warn(errors.NumbaWarning(warn_msg,
/Users/tommychin/opt/anaconda3/lib/python3.8/site-packages/numba/core/object_mode_passes.py:161: NumbaDeprecationWarning: 
Fall-back from the nopython compilation path to the object mode compilation path has been detected, this is deprecated behaviour.

For more information visit https://numba.pydata.org/numba-doc/latest/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit

File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py", line 1:
<source missing, REPL/exec in use?>

  warnings.warn(errors.NumbaDeprecationWarning(msg,
In [11]:
executed in 2.91s, finished 14:14:09 2021-10-04

index 11, 4th order correctionΒΆ

(s15)ρ11,sig(4)(Ο‰t,ωτ)=|ΞΌ|416ℏ4(iΟ‰tβˆ’[Ο‰10βˆ’iΞ³10])(iΟ‰Ο„βˆ’[βˆ’Ο‰10βˆ’iΞ³10])ΒΆ

In [12]:
executed in 3ms, finished 14:14:09 2021-10-04

electron-phonon coupling functionΒΆ

equation is written in text at the very beginning of p. 15 of the Supplementary MaterialΒΆ

R(Ο‰10,Ο‰12)=R(Ο‰12)βˆΟ‰122ΒΆ

In [13]:
executed in 2ms, finished 14:14:09 2021-10-04

E~LOβˆ— is the electric field?ΒΆ

branching ratioΒΆ

(s16)B(Ο‰10,Ο‰12)=Ξ“10Ξ“10+Ξ“12(Ο‰10,Ο‰12)β‰ˆΞ“10Ξ“10+R(Ο‰10,Ο‰12)ΒΆ

In [14]:
executed in 2ms, finished 14:14:09 2021-10-04

GaussianΒΆ

(s19)G(Ο‰10βˆ’Ο‰10(unstrained))≑NΟƒ2Ο€exp[βˆ’(Ο‰10βˆ’Ο‰10(unstrained))22Οƒ2]ΒΆ

Modified GaussianΒΆ

G(Ο‰10βˆ’Ο‰10(unstrained))≑N0.5Οƒ2Ο€exp[βˆ’(Ο‰10βˆ’0.5Ο‰10(unstrained))22(0.5Οƒ)2]+N1.5Οƒ2Ο€exp[βˆ’(Ο‰10βˆ’1.5Ο‰10(unstrained))22(1.5Οƒ)2] (Mod. s19)ΒΆ

In [15]:
executed in 3ms, finished 14:14:09 2021-10-04
In [16]:
executed in 377ms, finished 14:14:10 2021-10-04

Infinite integralΒΆ

In [17]:
executed in 3ms, finished 14:14:10 2021-10-04

Itot,het(Ο‰t,ωτ)∝E~LOβˆ—(βˆ’Ο‰t)βˆ«βˆ’βˆžβˆžG(Ο‰10βˆ’Ο‰10(unstrained))[iΞΌβˆ—Ο10,sig(3)(Ο‰t,ωτ,Ο‰10)]dΟ‰10 (s20)ΒΆ

In [18]:
executed in 2m 1s, finished 14:16:11 2021-10-04
/var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/3005950524.py:1: NumbaWarning: 
Compilation is falling back to object mode WITH looplifting enabled because Function "infint" failed type inference due to: non-precise type pyobject
During: typing of argument at /var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/3005950524.py (3)

File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/3005950524.py", line 3:
<source missing, REPL/exec in use?>

  @numba.jit
/Users/tommychin/opt/anaconda3/lib/python3.8/site-packages/numba/core/object_mode_passes.py:151: NumbaWarning: Function "infint" was compiled in object mode without forceobj=True.

File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/3005950524.py", line 1:
<source missing, REPL/exec in use?>

  warnings.warn(errors.NumbaWarning(warn_msg,
/Users/tommychin/opt/anaconda3/lib/python3.8/site-packages/numba/core/object_mode_passes.py:161: NumbaDeprecationWarning: 
Fall-back from the nopython compilation path to the object mode compilation path has been detected, this is deprecated behaviour.

For more information visit https://numba.pydata.org/numba-doc/latest/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit

File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/3005950524.py", line 1:
<source missing, REPL/exec in use?>

  warnings.warn(errors.NumbaDeprecationWarning(msg,
/var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py:1: NumbaWarning: 
Compilation is falling back to object mode WITH looplifting enabled because Function "rho_10_sig_3" failed type inference due to: No implementation of function Function(<function sum at 0x7fe3d6422af0>) found for signature:
 
 >>> sum(list(array(complex128, 2d, C))<iv=None>, Literal[int](0))
 
There are 2 candidate implementations:
    - Of which 2 did not match due to:
    Overload of function 'sum': File: numba/core/typing/npydecl.py: Line 348.
      With argument(s): '(list(array(complex128, 2d, C))<iv=None>, Literal[int](0))':
     No match.

During: resolving callee type: Function(<function sum at 0x7fe3d6422af0>)
During: typing of call at /var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py (4)


File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py", line 4:
<source missing, REPL/exec in use?>

  @numba.jit
/Users/tommychin/opt/anaconda3/lib/python3.8/site-packages/numba/core/object_mode_passes.py:151: NumbaWarning: Function "rho_10_sig_3" was compiled in object mode without forceobj=True.

File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py", line 1:
<source missing, REPL/exec in use?>

  warnings.warn(errors.NumbaWarning(warn_msg,
/Users/tommychin/opt/anaconda3/lib/python3.8/site-packages/numba/core/object_mode_passes.py:161: NumbaDeprecationWarning: 
Fall-back from the nopython compilation path to the object mode compilation path has been detected, this is deprecated behaviour.

For more information visit https://numba.pydata.org/numba-doc/latest/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit

File "../../../../../../var/folders/ll/xnd2vddx2v58kn3khq6ldnc00000gn/T/ipykernel_1348/2122550010.py", line 1:
<source missing, REPL/exec in use?>

  warnings.warn(errors.NumbaDeprecationWarning(msg,

Itot,PL(Ο‰t,ωτ)βˆβˆ«βˆ’βˆžβˆžG(Ο‰10βˆ’Ο‰10(unstrained))B(Ο‰10,Ο‰12)ρ11,sig(4)(Ο‰t,ωτ,Ο‰10)dΟ‰10 (s21)ΒΆ

argu = lambda omega10: G(omega10) * B(omega10, omega12) * rho_11_sig_4(omega_t_mesh, omega_tau_mesh, omega10) I_tot_PL, int_err_PL = infint(argu)

Plotting Heterodyne detection vs. PL detection simulation resultsΒΆ

Fig. S9(a)ΒΆ

In [19]:
executed in 1.12s, finished 14:16:12 2021-10-04

fig = plt.figure() im = plt.imshow(I_tot_het.real, origin='lower', extent=(406.5, 407.1, -407.1, -406.5)) plt.xlabel(r'Third-order frequency, Ξ½t, (THz)') plt.ylabel(r'First-order frequency, Ξ½Ο„, (THz)') plt.title('Heterodyne detection sim.') colorbar(im) plt.show()

fig.savefig("/Users/tommychin/Documents/research/Smallwood_research/testVectorImage.eps", format='eps', bbox_inches='tight')ΒΆ

Fig. S9(b)ΒΆ

I_tot_PL_ReImAm = np.array([I_tot_PL.real, I_tot_PL.imag, abs2(I_tot_PL), phi(I_tot_PL)]) figPL = slices_plots(I_tot_PL_ReImAm, shared_title='PL detection sim.', shared_title_y_position=0.95, figure_shape=[2,2], figure_size=[6,5.5], titles=[r'R{Itot,PL(Ο‰t,ωτ)}', r'I{Itot,PL(Ο‰t,ωτ)}', r'|Itot,PL(Ο‰t,ωτ)|2', r'Ο†(Itot,PL(Ο‰t,ωτ))'], horizontal_gap=0.06, shared_y_label_x_position=0.04, shared_x_label_y_position=0.06)